////////////////////////////////////////////////////////////////////////////////

#ifndef _SCREEN_H_
#define _SCREEN_H_

#ifndef _WIDGET_H_
#include "widget.h"
#endif

////////////////////////////////////////////////////////////////////////////////


/** Common class for different game screens
*
*  @author   Anastasia Karpinska
*  @since    May 29th, 2010
*  @updated  May 30th, 2010
*/
class Screen : public Widget
{
////////////////////////////////////////////////////////////////////////////////

public:

////////////////////////////////////////////////////////////////////////////////


    /** Constructor */
    Screen(Widget* _parent);
    
    
    /** Destructor */
    ~Screen();

    
////////////////////////////////////////////////////////////////////////////////


    /** Resizes a screen */
    virtual void Resize();


    /** Render a screen */
    virtual void Render();


    /** Key change handler */
    virtual void OnKeyChanged();


    /** Mouse position change handler */
    virtual void OnMousePositionChanged( int _x, int _y );


    /** Add widget to screen */
    void AddWidget(Widget* _widget);


////////////////////////////////////////////////////////////////////////////////

private:

////////////////////////////////////////////////////////////////////////////////


    /** Load images */
    void LoadImages();


////////////////////////////////////////////////////////////////////////////////


    /** Widgets on the screen */
    WidgetsVec m_Widgets;


////////////////////////////////////////////////////////////////////////////////
};


////////////////////////////////////////////////////////////////////////////////

#endif

////////////////////////////////////////////////////////////////////////////////

